Comments on: On the importance of backward compatibility http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/ Linux old timer. Debian founder. Sun alum. Salesforce ExactTarget exec. Sat, 05 Sep 2015 19:38:18 +0000 hourly 1 http://wordpress.org/?v=4.3.2 By: Ian Murdock’s Weblog » Blog Archive » More on the importance of backward compatibility http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1220 Mon, 22 Jan 2007 13:54:16 +0000 http://ianmurdock.com/?p=400#comment-1220 […] There were a lot of good comments on my post about the importance of backward compatibility the other day (both here and in the blogosphere), and a lot more of them were positive than I was expecting, which I find encouraging. […]

]]>
By: RG3 http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1204 Thu, 18 Jan 2007 12:07:29 +0000 http://ianmurdock.com/?p=400#comment-1204 There’s a difference between maintaining backwards API and even ABI compatibility, and bending over backwards to support broken apps. The former are laudible goals, and can usually be achieved without too much trouble if you thought things out in the first place. Obviously, no amount of thinking ahead can set you up for every possible future situation, but it can help.

But if applications use undocumented features, or rely on bugs, or plain fly in the face of documentation (such as in the SimCity example), should be no onus on the system provider to continue to support that behaviour.

If you want to be confident about your program working in the future, write it according to the documented API, and following the portability guidelines that litter the net. This won’t safeguard you against reckless maintainers, but many (most?) library maintainers do care about API compatibility, and even ABI compatibility for the more core ones.

]]>
By: Murdock: On the Importance of Backward Compatibility | Technology News - Technology-x.net http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1202 Wed, 17 Jan 2007 22:14:23 +0000 http://ianmurdock.com/?p=400#comment-1202 […] Complete Story […]

]]>
By: Bill Mason http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1201 Wed, 17 Jan 2007 21:10:24 +0000 http://ianmurdock.com/?p=400#comment-1201 “look at the shelf of Windows applications, then compare it to the shelf of Mac applications, and perhaps you’ll better understand why it’s important.”

No, what I’ll understand is that Microsoft had no competition on the IBM PC for far too long, and that their operating system is pre-loaded when the hardware is purchased.

Backward compatibility is a noble goal to an extent, but in the extreme can be detrimental. We can see that now as we watch Microsoft take a half a decade to release a minor upgrade to an unstable, bug-ridden, and insecure operating system. Some things are not worth emulating.

]]>
By: Simon Peter http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1197 Wed, 17 Jan 2007 08:46:18 +0000 http://ianmurdock.com/?p=400#comment-1197 “Typically a Linux system is running Free/Open software and consequently it is a matter of ensuring that you ARE running the latest version of the software.”

While this might be true for the base system, it is certainly not true for all the apps you might want to run on top of it and that are not part of the distribution. In fact, the whole point of an operating system is to provide the infrastructure for running applications on top. These might or might not happen to be part of your distribution of choice.

It’s always important to remember that to the developer, binaries without the source are worthless. But it is equally important to remember that to the end user, source without (compatible!) binaries is worthless.

]]>
By: tecosystems » A Surprise Quiz http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1195 Wed, 17 Jan 2007 05:21:19 +0000 http://ianmurdock.com/?p=400#comment-1195 […] Does binary compatibility matter as much as we think it does? […]

]]>
By: Andrew Montalenti http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1191 Tue, 16 Jan 2007 19:41:09 +0000 http://ianmurdock.com/?p=400#comment-1191 I think a good read in this vein is Joshua Bloch’s “How to Design a Good API & Why It Matters”. Particularly his points that API design is hard because “you have to get it right the first time.”

Check it out:
http://lcsd05.cs.tamu.edu/slides/keynote.pdf (pdf slideshow)
http://www.infoq.com/presentations/effective-api-design (webcast)

]]>
By: Jacob Boswell http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1190 Tue, 16 Jan 2007 18:02:03 +0000 http://ianmurdock.com/?p=400#comment-1190 I think any programmer that written a program longer than the first release should recognize the importance of backwards compatibility. However the example that you chose to illustrate its importance is the worst one possible. Their chosen action to fix the “bug” is backward compatibility with the worst practice and the “results speak for themselves.” Go ahead an install XP on a system, then install a Linux system with the SAME functionality set (OS, Email, Browser, Text editor) and this example will tell you exactly why your fresh install of XP is now taking up 3-5 GB of space VS the >1GB taken by Linux. And now every application and user has to suffer with the poor performance imposed by checking to see if a “SimCity” is running.

I agree 100% with G Fernandes comments. Applications should strive to maintain API compatibility and give very long deprecation cycles if a change is absolutely required. But trying to follow a MS Windows approach to the solution is bad path for all involved except the one group that gets the application. If a application chooses to use an undocumented or unexposed call, they risk breaking there own stuff. No application should be held responsible to maintain compatibility to is “private” interfeces.

Finally I have to agree with Simon Waters who inferred that the number of applications available on the shelves of Best Buy is a poor indicator of the success of the approach of MS has taken. In fact if you compared the number of available applications VS the total desktop market share, you would likely see that Linux has a huge advantage followed by OS X then Windows. But that is just an uneducated guess :)

Anyway, the point here is that backward compatibility is important but, as in most things, you need to find the right balance when moving a product forward.

]]>
By: bob hunter http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1188 Tue, 16 Jan 2007 10:40:32 +0000 http://ianmurdock.com/?p=400#comment-1188 Did I mention that we can run emulators nowadays? If one happens to have a legacy application, running only on a certain version of a certain OS, one can run that OS on top of osx using emulation, and the legacy application, with no need to carry patches to old bugs with each new release. As a matter of fact, Apple trashes old bugs and legacy technology with each update, both on software and on hardware. It is a policy that follows natural selection: the old is clear of the way. It is also a policy that allows you to run your software museum, using emulators.

By the way, it is the fist time that I read a linux insider talking well about microsoft. Things are really changing around here…

]]>
By: G Fernandes http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1186 Tue, 16 Jan 2007 10:12:00 +0000 http://ianmurdock.com/?p=400#comment-1186 Backward compatibility is important. But good practice is FAR more important.

A good example might have been the JDBC API. If there is a problem in a specific driver implementation, clients do not have to change their code. The implementation of the offending driver changes to fix bad behavior.

Backward compatibility doesn’t suffer – all clients access the driver through the JDBC interface. The JDK doesn’t work around to accomodate bad driver implementations. The offending driver is fixed.

Voila! You have backward compatibility with good practice!

]]>